/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 私有域名zone
 * 私有域名zone API
 *
 * OpenAPI spec version: v1
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using System;
using System.Collections.Generic;
using System.Text;
using JDCloudSDK.Core.Service;

using JDCloudSDK.Privatezone.Model;
using JDCloudSDK.Core.Annotation;
using Newtonsoft.Json;

namespace  JDCloudSDK.Privatezone.Apis
{

    /// <summary>
    ///  - 添加一个私有解析的zone，可添加以下三种类型的zone
        ///         /// - 云内全局zone：zone的后缀是指定的后缀，如：local。该域名在云内自动全局生效，不用关联vpc即可在vpc内解析，该类型全局唯一，不能重复添加
        ///         /// - 反向解析zone：zone的后缀是in-addr.arpa时，我们认为他是一个反向解析的zone，反向解析域名前缀目前支持10/172.16-31/192.168网段，如：10.in-addr.arpa、16.172.in-addr.arpa。反向解析的zone只能添加反向解析的记录
        ///         /// - 私有解析zone：该类型的zone可以时任意符合格式的域名，私有解析zone需要关联vpc后，在vpc内生效解析
        ///         /// 
    /// </summary>
    public class CreateZoneRequest : JdcloudRequest
    {
        ///<summary>
        /// zone
        ///Required:true
        ///</summary>
        [Required]
        public   string Zone{ get; set; }
        ///<summary>
        /// 购买的套餐实例ID
        ///Required:true
        ///</summary>
        [Required]
        public   string InstanceId{ get; set; }
        ///<summary>
        /// 域名类型 LOCAL-&gt;云内全局 PTR-&gt;反向解析zone PV-&gt;私有zone
        ///Required:true
        ///</summary>
        [Required]
        public   string ZoneType{ get; set; }
        ///<summary>
        /// 解析失败后是否进行递归解析
        ///</summary>
        public   bool RetryRecurse{ get; set; }
        ///<summary>
        /// 绑定的vpc信息
        ///</summary>
        public List<BindVpcReq> BindVpc{ get; set; }

        ///<summary>
        /// 地域ID
        ///Required:true
        ///</summary>
        [Required]
        [JsonProperty("regionId")]
        public   string RegionIdValue{ get; set; }
    }
}